package com.cdu.guoxinan.www.smartcom.mapper;

import com.cdu.guoxinan.www.smartcom.domian.pojo.Order;
import com.cdu.guoxinan.www.smartcom.domian.pojo.OrderItem;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface OrderMapper {
    /**
     * 插入订单
     */
    int insertOrder(Order order);
    
    /**
     * 插入订单明细
     */
    int insertOrderItem(OrderItem orderItem);
    
    /**
     * 根据用户ID查询订单列表
     */
    List<Order> selectOrdersByUserId(Long userId);
    
    /**
     * 根据订单ID查询订单明细
     */
    List<OrderItem> selectOrderItemsByOrderId(Long orderId);
    
    /**
     * 根据订单ID查询订单
     */
    Order selectOrderByOrderId(Long orderId);
    
    /**
     * 更新订单状态
     */
    int updateOrderStatus(@Param("orderId") Long orderId, @Param("status") Integer status);
    
    /**
     * 根据订单ID删除订单明细
     */
    int deleteOrderItemsByOrderId(Long orderId);
    
    /**
     * 根据订单ID删除订单
     */
    int deleteOrderByOrderId(Long orderId);
    
    /**
     * 分页查询所有订单（管理端用）
     */
    List<Order> selectAllOrdersWithUser(@Param("offset") int offset, @Param("limit") int limit, 
                                       @Param("sortField") String sortField, @Param("sortOrder") String sortOrder);
    
    /**
     * 统计所有订单数量
     */
    int countAllOrders();
} 